package main

import (
	"fmt"
	"runtime"
)

/**
  channel是引用类型
 */
func main() {
	//通过设置GOMAXPROCS环境变量来控制go程序使用的线程数（默认为cpu核数）
	runtime.GOMAXPROCS(runtime.NumCPU())
	c := make(chan bool,10)  //有缓冲的channel

	for i:=0;i<10;i++  {
		go Go(c,i)

	}

	for i:=0;i<10;i++  {
		<-c
	}
}

func Go(c chan bool,index int)  {
	a := 1

	for i:=0;i<100000000;i++ {
		a +=i
	}

	fmt.Println(index,a)

	c<-true   //先放后取
}